class Solution {
public:
    int myAtoi(string s) {
        int n=s.size();
        int i=0;
        int res=0;
        int flag=1;
        while(s[i]==' ') i++;
        if(s[i]=='-') flag=-1;
        if(s[i]=='-' || s[i]=='+') i++;
        while(i<n && isdigit(s[i]))
        {
            int t=s[i]-'0';
            if(res>INT_MAX/10 || (res==INT_MAX/10 && t>7) )
            {
                return flag==1 ? INT_MAX : INT_MIN;
            }
            res=res*10+t;
            i++;
        }
        return flag==1 ? res : -res;
    }
};
